home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Apple II Magazines (DO)
/
Micro on the Apple Volume 2 (1981)(Micro Ink).zip
/
Micro on the Apple Volume 2 (1981)(Micro Ink).do
/
COMPRESS.int
< prev
next >
Wrap
Text File
|
1996-12-24
|
3KB
|
98 lines
1 REM ************************
2 REM * *
3 REM * PICTURE COMPRESSION *
4 REM * BY ROBERT BISHOP *
5 REM * *
6 REM * COMPRESS *
7 REM * *
8 REM * COPYRIGHT (C) 1981 *
9 REM * MICRO INK, INC. *
10 REM * CHELMSFORD, MA 01824 *
11 REM * ALL RIGHTS RESERVED *
12 REM * *
13 REM ************************
14 REM
15 DIM A$(40)
20 ANAL=11*256:SYN=ANAL+128:PRESS=4096+2*256+8*16
30 FLAG=0:XFLAG=0
50 PRINT "<CTRL-D>BLOAD PICT COMP"
100 CALL -936: POKE -16300,0: POKE -16303,0
110 TAB 17:PRINT "M E N U"
120 TAB 17:PRINT "-------":PRINT
130 PRINT :PRINT " L - LOAD PICTURE FROM DISK"
140 PRINT :PRINT " A - ANALYZE PICTURE INTO PIXELS"
150 PRINT :PRINT " S - SYNTHESIZE PICTURE FROM PIXELS"
160 PRINT :PRINT " 1 - DISPLAY ORIGINAL PICTURE"
170 PRINT :PRINT " 2 - DISPLAY SYNTHESIZED PICTURE"
180 PRINT :PRINT " D - ISSUE DISK COMMANDS"
190 PRINT :PRINT " X - SAVE COMPRESSED PICTURE TO DISK"
195 VTAB 20:PRINT "SELECTION: "
200 REM READ KEYBOARD
210 CHAR= PEEK (-16384)
220 IF CHAR<128 THEN 210
230 POKE -16384+16,0
300 ID=0
310 IF CHAR= ASC("L") THEN ID=1
320 IF CHAR= ASC("A") THEN ID=2
330 IF CHAR= ASC("S") THEN ID=3
340 IF CHAR= ASC("1") THEN ID=4
350 IF CHAR= ASC("2") THEN ID=5
360 IF CHAR= ASC("D") THEN ID=6
370 IF CHAR= ASC("X") THEN ID=7
400 IF ID=0 THEN 100
500 GOTO 1000*ID
1000 VTAB 20:TAB 12:CALL -958:PRINT "LOAD PICTURE"
1005 POKE -16300,0: POKE -16303,0
1010 VTAB 22:INPUT "FILE NAME: ",A$
1015 IF A$="" THEN 100
1020 VTAB 22:PRINT "<CTRL-D>BLOAD ";A$;",A$2000,D1"
1050 GOTO 100
2000 VTAB 20:TAB 12:CALL -958:PRINT "ANALYZE PICTURE"
2005 POKE -16300,0: POKE -16303,0
2010 VTAB 22:INPUT "MAX ERRORS/PIXEL:",MAXERR
2020 POKE 16,MAXERR:CALL ANAL
2025 FLAG=1:XFLAG=0:NUMBER=40* PEEK (8)+ PEEK (7)+1
2030 VTAB 22:PRINT "THERE ARE ";NUMBER;" PIXELS WITH MAX ERROR = ";MAXERR
2035 POKE -16384+16,0
2040 IF PEEK (-16384)<128 THEN 2040
2050 GOTO 100
3000 VTAB 20:TAB 12:PRINT "SYNTHESIZE PICTURE"
3005 POKE -16300,0: POKE -16303,0:VTAB 22:CALL -958
3010 FOR K=1 TO 500:NEXT K
3020 IF FLAG THEN 3050
3030 VTAB 22:PRINT "THERE ARE NO PIXELS DEFINED YET!<CTRL-G>"
3040 GOTO 3060
3050 CALL SYN
3055 XFLAG=1
3060 POKE -16384+16,0
3070 IF PEEK (-16384)<128 THEN 3070
3080 IF PEEK (-16384)= ASC("1") THEN 210
3085 IF PEEK (-16384)= ASC("2") THEN 210
3090 GOTO 100
4000 POKE -16304,0: POKE -16302,0: POKE -16300,0: POKE -16297,0
4050 GOTO 200
5000 POKE -16304,0: POKE -16302,0: POKE -16299,0: POKE -16297,0
5050 GOTO 200
6000 VTAB 20:TAB 12:CALL -958:PRINT "DISK COMMAND"
6005 POKE -16300,0: POKE -16303,0
6010 VTAB 22:INPUT ":",A$
6015 IF A$="" THEN 100
6020 VTAB 22:TAB 2:PRINT "<CTRL-D>";A$
6030 PRINT :PRINT :PRINT
6040 GOTO 6010
7000 VTAB 20:TAB 12:CALL -958:PRINT "SAVE COMPRESSED PICTURE"
7005 POKE -16300,0: POKE -16303,0
7010 IF XFLAG THEN 7025
7015 VTAB 22:PRINT "NO PICTURE HAS BEEN SYNTHESIZED YET!<CTRL-G>"
7020 GOTO 7040
7025 IF NUMBER<=256 THEN 7060
7030 VTAB 22:PRINT "THERE ARE TOO MANY (";NUMBER;") PIXELS"
7040 POKE -16384+16,0
7045 IF PEEK (-16384)<128 THEN 7045
7050 GOTO 100
7060 VTAB 22:INPUT "FILE NAME: ",A$
7065 IF A$="" THEN 100
7070 CALL PRESS
7080 VTAB 22:PRINT "<CTRL-D>BSAVE ";A$;",A$8000,L";960+2+8*NUMBER;",D2"
7090 GOTO 100